
/*!
  \author Ameziane NAIT-ABDELAZIZ 
  \version 0.0.3
  \date 2011
  \file back_trace.h
  \brief Fichier permettant de tracer la pile d'execution d'un programme.
  
  Details.
*/

#ifndef __BACK_TRACE__HH
#define __BACK_TRACE__HH

#include <iostream>
#include <cstdlib>

using namespace std;

/**
 *\brief Structure regroupant les informations
 *sur l'etat de la pile des appels.
 */

typedef struct 
{
  
  /**
   *Taille de la pile
   */
  unsigned int size;
  
  /**
   *Les symboles de la pile
   */
  char ** strings;
}stack_info_t;



/**
 *\brief Structure regroupant les elements d'une stack frame.
 */
typedef struct
{
  char* symb;
  char* lib_symb;
  char* offset;
}stack_frame;  

/**
 *\brief Affiche l'etat de la pile des appels du thread courant.
 */
void back_trace_print (FILE *f);  

/**
 *\brief Initialise le fichier de back trace.
 */  
void back_trace_init();

/**
 *\brief Cloture le fichier de back trace.
 */  
void back_trace_finalize();

#endif
